package src.com.doit.demo05;
/*
定义一个方法 能够遍历三个集合 并调用eat方法

    泛型的限定
        上限限定:<?extend Animal> 当前类及其子类
        下线限定<?super Animal> 当前类及其父类
    当用在打印的时候,可以使用

*/
import java.util.ArrayList;
import java.util.Collection;

public class test {
    public static void main(String[] args) {
        Collection<Animal> animals = new ArrayList<>();
        animals.add(new Animal());
        animals.add(new Animal());

        Collection<Cat> cats = new ArrayList<>();
        cats.add(new Cat());
        cats.add(new Cat());

        Collection<Dog> dogs =new ArrayList<>();
        dogs.add(new Dog());
        dogs.add(new Dog());
        method(animals);
        method(cats);
        method(dogs);
    }

    //泛型的限定
    //上限限定 ? extend animal 当前类及其子类
    //下线限定 ? super animal 当前类及其父类
    public static void method(Collection<? extends Animal>list)
    {
        for (Object obj:list)
        {
            Animal a = (Animal) obj;
            a.eat();
        }
    }
}
